<?php
/**
 * Notes:
 * User: LiaoHong
 * Date: 2025/10/24
 * Time: 10:14
 **/


namespace App\Models\Project;


use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Project extends Model
{
  //  use SoftDeletes;
    protected $table = 'project';
    protected $primaryKey = 'id';
    protected $dateFormat = 'Y-m-d H:i:s';

    /**
     * 过滤请求数据中的无效字段（仅保留表中存在的字段）
     * @param array $data 原始请求数据
     * @return array 过滤后的有效数据
     */
    public function filterMultipleFields(array $data): array
    {
        // 获取当前表的所有字段（缓存结果，避免重复查询数据库）
        $tableColumns = cache()->rememberForever(
            "project_columns:{$this->getTable()}",
            fn() => $this->getConnection()->getSchemaBuilder()->getColumnListing($this->getTable())
        );
        $columnKeys = array_flip($tableColumns); // 转成键名数组，用于快速匹配

        // 遍历每条数据，过滤无效字段
        return array_map(function ($item) use ($columnKeys) {
            // 只保留当前数据中存在、且表中也有的字段
            return array_intersect_key($item, $columnKeys);
        }, $data);
    }
}
